package com.justgame.project.service.just.service.basic;

import com.justgame.project.service.just.entity.JustViewGameLog;
import com.justgame.project.service.just.query.JustViewGameLogQuery;
import com.justgame.project.service.just.wrapper.JustViewGameLogWrapper;
import com.justgame.project.base.servcice.IBasicService;
import java.lang.Long;
import org.springframework.util.Assert;
import org.springframework.lang.NonNull;
import java.lang.String;

/**
 *
 * 游戏浏览记录表服务自定义查询类
 *
 * @@tableName just_view_game_log
 * @author Zwb
 */
@SuppressWarnings("all")
public interface BasicJustViewGameLogService extends IBasicService<JustViewGameLogQuery,JustViewGameLog,JustViewGameLogWrapper> {

   /**
    * 新增创建
    * @param gameInfoId 游戏信息
    * @param userInfoId 用户信息
    * @param ip ip地址
    */
   default JustViewGameLog baseAdd(Long gameInfoId, Long userInfoId, String ip){
      JustViewGameLog justViewGameLog = new JustViewGameLog();
      justViewGameLog.setGameInfoId(safeValue(gameInfoId, null));
      justViewGameLog.setUserInfoId(safeValue(userInfoId, null));
      justViewGameLog.setIp(safeValue(ip, null));
      save(justViewGameLog);
      return justViewGameLog;
   }

   /**
    * 更新
    * @param gameInfoId 游戏信息
    * @param userInfoId 用户信息
    * @param ip ip地址
    */
   default boolean baseUpdate(@NonNull JustViewGameLog justViewGameLog,Long gameInfoId, Long userInfoId, String ip){
      Assert.notNull(userInfoId,"必须提供用户信息");
      Assert.notNull(ip,"必须提供ip地址");
      Assert.notNull(gameInfoId,"必须提供游戏信息");
      Assert.notNull(justViewGameLog.getId(),"必须提供主键ID");
      justViewGameLog.setGameInfoId(safeValue(gameInfoId, null));
      justViewGameLog.setUserInfoId(safeValue(userInfoId, null));
      justViewGameLog.setIp(safeValue(ip, null));
      return updateById(justViewGameLog);
   }

}